package day03;

import java.util.Random;

public class HomeworkDay03 {
    public static void main(String[] args) {
        //运算符的练习：算术
        //输出几个整数取模，验证结果
        System.out.println(10%3);//1
        System.out.println(10%2);//0
        System.out.println(10%4);//2
        System.out.println(10%5);//0
        //声明两个整型变量，演示单独使用时的自增和自减
        int a = 10;
        System.out.println(a++);//10
        System.out.println(++a);//12
        System.out.println(a--);//12
        System.out.println(--a);//10
        //声明几个整型变量，演示被使用时的自增和自减
        int b = 10;
        int c = b++;
        System.out.println(b);//11
        System.out.println(c);//10
        int d = ++b;
        System.out.println(b);//12
        System.out.println(d);//12

        //声明几个变量，演示最基本的>，<，>=，<=，==，!=操作
        int e = 10;
        int f = 20;
        System.out.println(e>f);//false
        System.out.println(e<f);//true
        System.out.println(e>=f);//false
        System.out.println(e<=f);//true
        System.out.println(e==f);//false
        System.out.println(e!=f);//true

        //演示关系运算符和算术运算符联合使用的效果
        System.out.println(e>f&&e<f);//false
        System.out.println(e>f||e<f);//true
        System.out.println(e>f&&e++<f);//false
        System.out.println(e);//10
        System.out.println(e>f||e++<f);//true
        System.out.println(e);//11
        System.out.println(e>f&&e++<f);//false
        System.out.println(e);//11

        //&&的演示要求：true+false、false+true、true+true、false+false
        int g = 5,h = 10,i = 15;
        System.out.println(g>h&&h<i);//false
        System.out.println(g>h&&h>i);//false
        System.out.println(g<h&&h<i);//true
        System.out.println(g<h&&h>i);//false

        //||的演示要求：true+false、false+true、true+true、false+false
        System.out.println(g>h||h<i);//true
        System.out.println(g>h||h>i);//true
        System.out.println(g<h||h<i);//true
        System.out.println(g<h||h>i);//false

        //!的演示要求：true、false
        System.out.println(!(g>h));//true
        System.out.println(!(g<h));//false

        //演示短路&&与短路||
        int j = 10;
        boolean b1 = j<5&&(j++>5);
        System.out.println(b1);//false
        System.out.println(j);//10

        boolean b2 = j>5||(j++>5);
        System.out.println(b2);//true
        System.out.println(j);//10

        //声明一个整型变量，演示扩展赋值+=、-=、*=、/=、%=的效果
        int k = 10;
        k+=5;
        System.out.println(k);//15
        k-=5;
        System.out.println(k);//10
        k*=5;
        System.out.println(k);//50
        k/=5;
        System.out.println(k);//10
        k%=5;
        System.out.println(k);//0

        //声明short型变量s，演示简单赋值运算的自增10，演示扩展赋值运算的自增10
        short s = 10;
        //s = s+10;//需要强转
        s+=10;
        System.out.println(s);//20

        //声明整型变量age和字符串型变量name，输出字符串连接的结果
        int age = 24;
        String name = "SJH";
        System.out.println("大家好，我叫"+name+",我今年"+age+"岁了");//大家好，我叫SJH,我今年24岁了


        //输出几个数据的拼接，演示字符串连接的同化作用
        System.out.println(10+20+"SJH"+10+20);
        System.out.println("SJH"+10+20+10+20);
        System.out.println("SJH"+(10+20)+10+20);
        System.out.println("SJH"+10+20+(10+20));

        //声明并初始化整型变量，使用条件运算符实现：若>0则给flag赋值为1，否则赋值为0
        int m = -10;
        int flag = m>0?1:0;
        System.out.println(flag);//0

        //声明两个整型变量，使用条件运算符实现：求这两个变量的最大值
        int n1 = 10;
        int n2 = 20;
        int max = n1>n2?n1:n2;
        System.out.println(max);//20

        //满2000打5折，满1000不满2000打7折，满500不满1000打8折，不满500打9折
        int price = 2000;
        if(price>=2000){
            price *= 0.5;
        }else if(price>=1000){
            price *= 0.7;
        }else if(price>=500){
            price *= 0.8;
        }else{
            price *= 0.9;
        }
        System.out.println("最终结算金额为"+price);



        //拓展练习
        //声明两个整型变量a和b并分别赋值，找到a和b中的最大值，并输出。
        // 用两种方式实现：条件运算符、if..else分支结构。
        int num1 = 10;
        int num2 = 20;
        System.out.println(num1>num2?num1:num2);//20

        if(num1>num2){
            System.out.println(num1);
        }else{
            System.out.println(num2);
        }

        //声明一个整型变量year并存储年份，判断其是平年还是闰年，
        // 若是闰年则输出"某某某年是闰年"，否则输出"某某某年是平年"。
        int year = 2020;
        if ((year%4==0&&year%100!=0)||year%400==0) {
            System.out.println(year+"年是闰年");
        }else {
            System.out.println(year+"年不是闰年");
        }

        //成绩等级判断：
        //考虑成绩的合法性：当不合法成绩时，输出"成绩不合法"
        int score = 91;
        if(score<=100&&score>=90){
            System.out.println("成绩等级为A");
        }else if(score<90&&score>=80){
            System.out.println("成绩等级为B");
        }else if(score<80&&score>=60){
            System.out.println("成绩等级为C");
        }else if(score<60&&score>=0){
            System.out.println("成绩等级为D");
        }else{
            System.out.println("成绩不合法");
        }







    }
}
